#pragma once
#include <stdio.h>
#include <math.h>
#include "ldg_i2c.h"

#define GXHTC3_ADDR 0x70

extern float temp, humi;
extern uint8_t temp_int, humi_int;

/**
 * CRC校验
 * @param {uint8_t} *crcdata 要校验的数据
 * @param {uint8_t} len 数据长度
 * @return {*} CRC校验结果
 */
extern uint8_t gxhtc3_calc_crc(uint8_t *crcdata, uint8_t len);

/**
 * 读取ID
 * @return {*} 读取结果
 */
extern ParseResult gxhtc3_read_id(void);

/**
 * 唤醒
 * @return {*} 唤醒结果
 */
extern ParseResult gxhtc3_wake_up(void);

/**
 * 测量
 * @return {*} 测量结果
 */
extern ParseResult gxhtc3_measure(void);

/**
 * 读出温湿度数据
 * @return {*} 读取结果
 */
extern ParseResult gxhtc3_read_tah(void);

/**
 * 休眠
 * @return {*} 休眠结果
 */
extern ParseResult gxhtc3_sleep(void);

/**
 * 获取温湿度
 * @return {*} 获取结果
 */
extern esp_err_t gxhtc3_get_tah(void);
